// pages/goods/list/index.js
import { reqGoodsList } from '../../../api/goods'

Page({
  /**
   * 页面的初始数据
   */
  data: {
    goodsList: [], // 商品列表数据
    isFinish: false, // 判断数据是否加载完毕
    // 商品列表请求参数
    reqData: {
      page: 1,
      limit: 10,
      category1Id: '',
      category2Id: ''
    },
    total: 0,
    isLoading: false //判断数据是否加载完成
  },

  // 监听页面上拉操作
  onReachBottom() {
    const { goodsList, total, isLoading } = this.data
    const { page } = this.data.reqData

    if (isLoading) return
    // 判断数据是否加载完毕
    if (goodsList.length === total) {
      this.setData({
        isFinish: true
      })
      return
    }
    this.setData({
      reqData: { ...this.data.reqData, page: page + 1 }
    })
    this.getGoodsList()
  },

  // 监听页面下拉操作
  onPullDownRefresh() {
    // 将数据重置
    this.setData({
      goodsList: [],
      total: 0,
      isFinish: false,
      reqData: { ...this.data.reqData, page: 1 }
    })
    // 使用最新参数发送请求
    this.getGoodsList()
    // 手动关闭下拉刷新效果
    wx.stopPullDownRefresh()
  },

  // 获取商品列表数据
  async getGoodsList() {
    // 请求发送之前，设置为true 表示正在发送
    this.data.isLoading = true
    const { data } = await reqGoodsList(this.data.reqData)
    // 请求发送之后，设置为false 表示请求结束
    this.data.isLoading = false
    this.setData({
      goodsList: [...this.data.goodsList, ...data.records],
      total: data.total
    })
  },

  onLoad(options) {
    // 合并对象属性
    Object.assign(this.data.reqData, options)
    this.getGoodsList()
  },

  // 转发功能 好友群聊
  onShareAppMessage() {},

  // 分享到朋友圈
  onShareTimeline() {}
})
